\section{Aut\'omatas}

La clase $AFND$ del paquete $grafo$ implementa la funcionalidad necesaria para generar el aut\'omata finito no determin\'istico. 
Su constructor recibe como par\'ametros el \'arbol AST entregado por el parser y el alfabeto. La construcci\'on es recursiva. En cada
paso, se construye un AFND de acuerdo al nodo raiz del árbol que compone nuevos AFNDs creados a partir de sus sub\'arboles.
La clase $AFD$ tiene un constructor que recibe como par'ametro un AFND y genera el AFD equivalente mediante un algoritmo que construye 
el conjunto potencia de los estados del AFND (powerset construction algorithm).
En la figura \ref{fig_ejemploAFD} se muestra el autómata determinístico resultante para la expresión regular \verb/a|(bcd?)+(ab)*/.

\begin{figure}[hbt]
      \centering
      \includegraphics[scale=0.4]{afd.png}
      \caption{Ejemplo de autómata finito resultante dada una expresión regular de entrada}
      \label{fig_ejemploAFD}
\end{figure}




